let {ResError,BaseController} = require('./baseController') 

class ToolController extends BaseController {

	async count (ctx,next) {
		let toolM = require('../models/toolModel')
		let id = ctx.params.id
		let res = null

		try{
			res = await new Promise(function(resolve,reject){
				toolM.findById(id, function (err, doc) {
					if(err){
						reject(err)
					}else{
						resolve(doc)
					}
				});
			})
		}catch(err){
			ctx.status = 406
			ctx.body={msg:'非法请求，请确认参数合法性',error:1}
			
		}	
		if(res==null){
			ctx.status = 406
			ctx.body={msg:'非法请求，请确认参数合法性。',error:1}
		}else{
			res.count+=1
			try{
				await new Promise(function(resolve,reject){
					res.save(function(err,item){
						if(err){
							reject(err)
							
						}else{
							resolve(item)
							
						}	
					})
				
				})	
			}catch(err){
				ctx.status = 501
				ctx.body={msg:'系统繁忙，请稍后再试',error:2}
			}
			ctx.body={msg:'success',error:0,data:res}	
		}
		
	}
	 
}

/*
notice  
Promise 两个参数
1.resolve  处理成功后将数据返回给上下文
2.reject 	处理过程中出现异常，将异常抛给外面的try/catch监听，如果没有监听，建议直接抛出
*/

module.exports = new ToolController()